.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "GREP" "1" "March 2015" "" ""
.
.SH "NAME"
\fBgrep\fR \- 打印匹配行
.
.SH "描述"
grep命令是一种强大的文本搜索工具，它能使用正则表达式搜索文本，并把匹配的 行打印出来。grep全称是\fBGlobal Regular Expression Print\fR，表示全局正则表达 式版本，它的使用权限是所有用户。
.
.SH "格式"
\fBgrep [OPTIONS] PATTERN [FILE\.\.\.]\fR
.
.P
\fBgrep [OPTIONS] [−e PATTERN | −f FILE] [FILE\.\.\.]\fR
.
.SH "选项"
.
.TP
\fB\-a\fR 或 \fB\-\-text\fR
将二进制档案视为文本文件搜寻，grep原本是搜寻文本文件，这个参数则 相当于\fB\-\-binary\-files=text\fR这个参数。
.
.TP
\fB\-c\fR
只输出匹配行的总数
.
.TP
\fB\-i\fR
不区分大小写(只适用于单字符)
.
.TP
\fB\-h\fR
查询多文件时不显示文件名
.
.TP
\fB\-l\fR
查询多文件时只输出包含匹配字符的文件名
.
.TP
\fB\-n\fR
显示匹配行及行号
.
.TP
\fB\-s\fR
不显示不存在或无匹配文本的错误信息
.
.TP
\fB\-v\fR
显示不包含匹配文本的所有
.
.TP
\fB\-l\fR
只列出匹配的文件名
.
.TP
\fB\-L\fR
列出不匹配的文件名
.
.TP
\fB\-w\fR
只匹配整个单词，而不是字符串的一部分
.
.TP
\fB\-A N\fR 或 \fB\-\-after\-context=N\fR
除了列出符合行之外，并且列出后N行
.
.TP
\fB\-B N\fR 或 \fB\-\-before\-context=N\fR
除了列出符合行之外，并且列出前N行
.
.TP
\fB\-C N\fR 或 \fB\-\-context[=N]\fR
列出符合行之外并列出上下各N行，默认值是两行
.
.P
PATTERN既可以是要搜索的字符串,也可以是一个正则表达式。输入要搜索的字符 串时最好使用双引号，而在模式匹配使用正则表达式时，注意使用单引号。
.
.P
正则表达式常用参数
.
.IP "" 4
.
.nf

表1\.常用的元字符
代码    说明
 \.      匹配除换行符以外的任意字符
\ew      匹配字母或数字或下划线或汉字
\es      匹配任意的空白符
\e_s     表示匹配一个空格或一个换行符
\ed      匹配数字
\eb      匹配单词的开始或结束
^       匹配字符串的开始
$       匹配字符串的结束
\e<      标注单词的开始
\e>     标注单词的结尾

表2\.常用的限定符
代码    说明
*       重复零次或更多次
+       重复一次或更多次
?       重复零次或一次
{n}     重复n次
{n,}    重复n次或更多次
{n,m}   重复n到m次

表3\.分组
代码    说明
x|y     匹配 x 或 y
[xyz]   匹配包含的任一字符
[^xyz]  反向字符集。匹配未包含的任何字符
[a\-z]   字符范围。匹配指定范围内的任何字符。
[^a\-z]  反向范围字符。匹配不在指定的范围内的任何字符
.
.fi
.
.IP "" 0
.
.SH "实例"
examples
.
.IP "" 4
.
.nf

grep \'test\' d*
.
.fi
.
.IP "" 0
.
.P
显示所有以d开头的文件中包含 test的行
.
.IP "" 4
.
.nf

grep \'test\' aa bb cc
.
.fi
.
.IP "" 0
.
.P
显示在aa，bb，cc文件中匹配test的行
.
.IP "" 4
.
.nf

grep \'[a\-z]\e{5\e}\' aa
.
.fi
.
.IP "" 0
.
.P
显示所有包含每个字符串至少有5个连续小写字符的字符串的行
.
.IP "" 4
.
.nf

grep man *
.
.fi
.
.IP "" 0
.
.P
匹配类似于\'Batman\',\'manic\',’man’等的字符串
.
.IP "" 4
.
.nf

grep \'\e<man\' *
.
.fi
.
.IP "" 0
.
.P
匹配类似于\'manic\'和\'man\'，但不匹配类似于\'Batman\'等的字符串。
.
.IP "" 4
.
.nf

grep \'\e<man\e>\'
.
.fi
.
.IP "" 0
.
.P
匹配’man’，但不匹配类似于\'Batman\'或\'manic\'等的字符串。
.
.SH "说明"
默认情况下，\fBgrep\fR只搜索当前目录，搜索子目录可以使用\fBgrep \-r\fR递归搜索，忽 略子目录可以使用\fBgrep \-d skip\fR，如果输出很多，您可以通过管道将其转到less 上阅读。
.
.P
有一点要注意，您必需提供一个文件过滤方式(搜索全部文件的话用\fB*\fR)。如果您忘 了，grep会一直等着，直到该程序被中断。如果您遇到了这样的情况，按\fBCTRL c\fR ，然后再试。
.
.SH "链接LINKS"
风生水起:\fIhttp://www\.cnblogs\.com/end/\fR
.
.P
原文地址:\fIhttp://www\.cnblogs\.com/end/archive/2012/02/21/2360965\.html\fR
